/*
srkrt_disp_gui_ivy.c
Ce fichier contient le corps des fonctions utilisées par le bus ivy pour jouer en réseaux.
*/
#include "srkrt_disp_gui_ivy.h"
#include <string.h>
#include <stdlib.h>

void ivy_send_move(Global* global) {
	/* envoie du message sur le bus */
	IvySendMsg("Move %d %d -> %d %d", global->move.xi, global->move.yi, global->move.xf, global->move.yf);
}

void disp_gtk_on_send_message(GtkWidget* widget, Global* global) {
	const gchar* message;

	/* Recuperation du texte contenu dans le GtkEntry */
	message = gtk_entry_get_text(GTK_ENTRY(global->entry));

	IvySendMsg("Chat %s : %s", global->name, message);
	fprintf(stderr, "chat %s %s", global->name, message);
	
	/* Creation de la nouvelle ligne */
        gtk_list_store_append(global->listStore, &(global->listIter));

        /* Mise a jour des donnees */
        gtk_list_store_set(global->listStore, &(global->listIter),
           0, global->name,
            1, message,
            -1);
	    fprintf(stderr, "message envoye\n");
}

void on_ivy_new(IvyClientPtr app, void* global, int argc, char *argv[]) {
	
	/* creation de la nouvelle partie */
	stack_destroy(&(((Global*)global)->game.history));
	if ( atoi(argv[0]) == PLAYER_1 ) {	
		((Global*)global)->game = srkrt_create(PLAYER_1);
	} else {
		((Global*)global)->game = srkrt_create(PLAYER_2);
	}
	((Global*)global)->game.vs = ON_LINE ;
	
	((Global*)global)->choice = 1 ;
	disp_gtk_reset((Global*)global);

	
}

void on_ivy_move(IvyClientPtr app, void* global, int argc, char *argv[]) {

	/* on recupere les coordonnees dans global->move */
	((Global*)global)->move = move_create(atoi(argv[0]), atoi(argv[1]), atoi(argv[2]), atoi(argv[3]), false);
	/* on joue le coup */
	disp_gtk_move(global);
}

void on_ivy_chat(IvyClientPtr app, void* global, int argc, char *argv[]) {
	
	/* Creation de la nouvelle ligne */
        gtk_list_store_append(((Global*)global)->listStore, &(((Global*)global)->listIter));

        /* Mise a jour des donnees */
	gtk_list_store_set(((Global*)global)->listStore, &(((Global*)global)->listIter), 0, argv[0], 1, argv[1], -1);
  
}

